home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 1.iso / util / mlk105.zip / HOST.MSL < prev    next >
Text File  |  1994-02-19  |  11KB  |  433 lines

  1. ' Host mode script
  2. ' Access levels are:    3 - Sysop
  3. '                       2 - user can access any directory
  4. '                       1 - user can access only current directory
  5. PUSH
  6. SET ECHO ON
  7. SET TEXTWRAP ON
  8. SET HOSTECHO ON
  9. SET INCRLF ON
  10. SET OUTCRLF ON
  11. SET CARRIERDETECT ON
  12.  
  13. SET DATABITS 8
  14. SET PARITY NONE
  15. SET STOPBITS 1
  16. SET FLOWCONTROL RTS
  17. SET LOCKBAUDRATE ON
  18. SET TERMINAL ANSI
  19.  
  20.  
  21. upload_dir$ = uploaddirectory
  22. default_dir$ = defaultdirectory
  23. file_spec$ = filespec
  24.  
  25.  
  26. cr$ = "^M"
  27. cr2$ = "^M^M"
  28. cr3$ = "^M^M^M"
  29. cr4$ = "^M^M^M^M"
  30. cr5$ = "^M^M^M^M^M"
  31. newpage$ = cr5$+cr5$+cr5$+cr5$+cr5$
  32.  
  33. Header$   = "                   Host Mode"
  34.  
  35. welcome1$ = "                 ***********************************"+cr$
  36. welcome2$ = "                 *        Microlink Host Mode      *"+cr$
  37. welcome3$ = "                 *      Press ENTER to Continue    *"+cr$
  38. welcome4$ = "                 ***********************************"+cr5$
  39.  
  40. continue = 1
  41. max_lines = 20
  42.  
  43.  
  44. WHILE continue=1
  45.     if ChangeDirectory(default_dir$) > 0 then
  46.       mprint "Invalid default directory"
  47.       beep
  48.       sleep 5
  49.       continue = 0
  50.       GOTO force_hangup
  51.     endif
  52.  
  53.     current_dir$ = default_dir$
  54.  
  55.     ONERROR force_hangup
  56.     AUTOANSWER
  57.     set error off        
  58.  
  59.     ONDISCONNECT force_hangup
  60.     sleep 5
  61.     RPRINT newpage$
  62.     RPRINT welcome1$
  63.     RPRINT welcome2$
  64.     RPRINT welcome3$
  65.     RINPUT welcome4$,temp$
  66.     Rprint cr4$
  67.  
  68.     ' Prompts to enter password
  69.     logon_ok = 0
  70.     FOR i = 1 TO 3
  71.     onerror skipsignon
  72.     RINPUT cr$+"Enter FIRST name: ", first$
  73.     RINPUT cr$+"Enter LAST name: ", last$
  74.     SET HOSTECHO OFF
  75.     RINPUT cr$+"Enter PASSWORD: ", password$
  76.     set error off
  77.     SET HOSTECHO ON
  78.     logon_ok = VerifyUser(first$, last$, password$)
  79.     IF logon_ok > 1  THEN
  80.         IF OPENHOST = 1 THEN
  81.             onerror skipnew
  82.             rprint cr2$+"              N E W   U S E R"+cr2$
  83.             Rprint cr$+"First Name: "+first$
  84.             Rprint cr$+"Last Name: "+last$
  85.             RINPUT cr$+"Correct? ", Temp$
  86.             logon_ok = 0
  87.             IF upper(Temp$) = "Y" THEN
  88.                 IF Adduser(first$, last$, password$, 1) > 0 THEN
  89.                     RPRINT cr2$+"Unable To Add User At This Time"
  90.                     logon_ok = 1
  91.                 ENDIF
  92.                 EXIT
  93.             ENDIF
  94.             skipnew:
  95.         ELSE
  96.             RPRINT cr2$+"Invalid logon attempt!"
  97.             IF i < 3 THEN
  98.                  RPRINT cr$+"There are " + String(3 - i) + " attempts left."
  99.             ENDIF
  100.         ENDIF
  101.     ELSE
  102.      IF logon_ok = 1  THEN
  103.         RPRINT cr$+"Invalid logon attempt!"
  104.         IF i < 3 THEN
  105.           RPRINT cr$+"There are " + String(3 - i) + " attempts left." + cr$
  106.         ENDIF
  107.      ELSE
  108.        EXIT
  109.      ENDIF
  110.     ENDIF
  111.     skipsignon:
  112.     NEXT
  113.  
  114.     IF logon_ok > 0 THEN
  115.     RPRINT cr2$+"Unable to validate user!"
  116.         RPRINT cr2$+"Hanging up!"
  117.         goto force_hangup
  118.     else
  119.     continue_commands = 1
  120.     access_level = ExtractUserLevel(first$, last$)
  121.     rprint cr4$
  122.     endif
  123.     WHILE continue_commands = 1
  124.         RPRINT cr2$+"         Host Mode Processor"+cr2$
  125.     RPRINT cr$ + "[F]File Directory    [D]Download    [U]Upload    [C]Chat"
  126.          ' Level 2 or 3
  127.     IF access_level > 1  THEN
  128.         RPRINT cr$ + "[CD]Change Directory [FS]File Specification"
  129.     ENDIF
  130.  
  131.     ' Level 3 only
  132.     IF access_level > 2 then
  133.         RPRINT cr$ + "[AU]Add User         [CU]Change User"
  134.         RPRINT cr$ + "[DU]Delete User      [S]ShutDown"
  135.     ENDIF
  136.  
  137.     RPRINT cr$ + "[G]Goodbye"
  138.  
  139.     ' Wait for command
  140.         RINPUT cr2$+current_dir$ + "> ", tempcommand$
  141.         command$ = upper(tempcommand$)
  142.  
  143.     ' Exit System
  144.     if len(command$) = 1 then
  145.         IF command$ = "G"  THEN
  146.         RPRINT cr$ + "Thanks for calling " + first$ + "!" + cr$
  147.         continue_commands = 0
  148.         SLEEP 2
  149.         ENDIF
  150.  
  151.             ' List Files
  152.         IF command$ = "F" THEN
  153.                 RPRINT cr4$
  154.         RPRINT "Directory listing of: " + current_dir$ + cr2$
  155.         ChangeDirectory(current_dir$)
  156.         filename$ = GetFirstDirEntry(current_dir$, file_spec$)
  157.         WHILE Len(filename$) > 0
  158.             FOR i = 1 to max_lines
  159.             RPRINT filename$ + cr$
  160.             filename$ = GetNextDirEntry()
  161.                     IF Len(filename$) = 0 THEN
  162.                     EXIT
  163.             ENDIF
  164.             NEXT
  165.             IF LEN(filename$) > 0 THEN
  166.                 Rinput cr$+"List paused.  Press ENTER to continue.",temp$
  167.                 IF "C" = upper(temp$) THEN
  168.                            exit
  169.                         ENDIF
  170.                     rprint cr4$
  171.             ENDIF
  172.         WEND
  173.  
  174.         RINPUT cr$+"End of List.   Press ENTER to Continue",temp$
  175.         rprint cr4$
  176.         ENDIF
  177.  
  178.         ' Download a File
  179.         IF command$ = "D" THEN
  180.             rprint cr4$
  181.         WHILE 1 = 1
  182.                     RPRINT cr$+Header$+cr3$
  183.             RPRINT cr$+"Available download file transfer protocols:" + cr2$
  184.             RPRINT "[X]..XMODEM Checksum" + cr$
  185.             RPRINT "[C]..XMODEM CRC" + cr$
  186.                     RPRINT "[Y]..YMODEM 1K" + cr$
  187.             RPRINT "[YB].YMODEM Batch" + cr$
  188.             RPRINT "[YG].YMODEM G" + cr$
  189.             RPRINT "[Z]..ZMODEM" + cr$
  190.             RPRINT "[E]..Cancel" + cr$
  191.             RINPUT "Select protocol: ", tempchoice$
  192.             choice$ = upper(tempchoice$)
  193.                     if len(choice$) = 1 then
  194.                 IF choice$ = "E" THEN
  195.                             EXIT
  196.                 ENDIF
  197.                 IF choice$ = "X" THEN
  198.                             set protocol XMODEM
  199.                             EXIT
  200.                 ENDIF
  201.                 IF choice$ = "C" THEN
  202.                             set protocol XMODEMCRC
  203.                             EXIT
  204.                 ENDIF
  205.             IF choice$ = "Y" THEN
  206.                             set protocol YMODEM
  207.                             EXIT
  208.                 ENDIF
  209.                 IF choice$ = "Z" THEN
  210.                             set protocol ZMODEM
  211.                             EXIT
  212.                 ENDIF
  213.             endif
  214.                     if len(choice$) = 2 then
  215.                 IF choice$ = "YB" THEN
  216.                             set protocol YMODEMB
  217.                             EXIT
  218.                 ENDIF
  219.                 IF choice$ = "YG" THEN
  220.                             set protocol YMODEMG
  221.                             EXIT
  222.                 ENDIF
  223.             ENDIF
  224.             rprint cr2$+"Invalid Selection"+cr2$
  225.         WEND
  226.                 IF choice$ = "E" THEN
  227.             rprint "Canceled!"+cr$
  228.                 ELSE
  229.                     ChangeDirectory(current_dir$)
  230.                     RINPUT cr2$+"Enter Filename: ", transfer_file$
  231.                     is_ok = DoesFileExist(transfer_file$)
  232.                     IF is_ok = 1 THEN
  233.                         RPRINT cr$+"File " + transfer_file$ + " was not found." + cr$
  234.                         RPRINT "File transfer canceled!" + cr$
  235.                     ELSE
  236.                         RPRINT cr$+"Downloading " + transfer_file$ + cr$
  237.                         ONERROR snderr
  238.                         SEND transfer_file$
  239.                         sleep 3
  240.                         rprint cr$+"File Transfer Successful"
  241.                         goto sndok
  242.                         snderr:
  243.                         rprint cr2$+"Error Downloading File"
  244.                         rinput cr$+"Hit ENTER to Continue",temp$
  245.                         sndok:
  246.                         set error off
  247.                     ENDIF
  248.                 ENDIF
  249.             ENDIF
  250.     ' Receive a File
  251.         IF command$ = "U" THEN
  252.             rprint cr4$
  253.             WHILE 1 = 1
  254.             RPRINT cr$+Header$+cr3$
  255.             RPRINT "Available Upload file transfer protocols:" + cr2$
  256.             RPRINT "[X]..XMODEM Checksum" + cr$
  257.             RPRINT "[C]..XMODEM CRC" + cr$
  258.             RPRINT "[Y]..YMODEM 1K" + cr$
  259.             RPRINT "[YB].YMODEM Batch" + cr$
  260.             RPRINT "[YG].YMODEM G" + cr$
  261.             RPRINT "[Z]..ZMODEM" + cr$
  262.             RPRINT "[E]..Exit" + cr$
  263.             RINPUT "Select protocol: ", tempchoice$
  264.             choice$ = upper(tempchoice$)
  265.             if len(choice$) = 1 then
  266.                 IF choice$ = "E" THEN
  267.                             EXIT
  268.                 ENDIF
  269.                 IF choice$ = "X" THEN
  270.                 set protocol XMODEM
  271.                 RINPUT cr$+"Enter Filename: ", transfer_file$
  272.                 is_ok = ValidFileName(transfer_file$)
  273.                         EXIT
  274.                 ENDIF
  275.                 IF choice$ = "C" THEN
  276.                         set protocol XMODEMCRC
  277.                 RINPUT cr$+"Enter Filename: ", transfer_file$
  278.                 is_ok = ValidFileName(transfer_file$)
  279.                         EXIT
  280.                 ENDIF
  281.                 IF choice$ = "Y" THEN
  282.                         set protocol YMODEM
  283.                 RINPUT cr$+"Enter Filename: ", transfer_file$
  284.                 is_ok = ValidFileName(transfer_file$)
  285.                         EXIT
  286.                 ENDIF
  287.                 IF choice$ = "Z" THEN
  288.                 set protocol ZMODEM
  289.                 transfer_file$ = ""
  290.                 is_ok = 1
  291.                         EXIT
  292.                 ENDIF
  293.             ENDIF
  294.             if len(choice$) = 2 then
  295.                 IF choice$ = "YB" THEN
  296.                 set protocol YMODEMB
  297.                 transfer_file$ = ""
  298.                 is_ok = 1
  299.                         EXIT
  300.                 ENDIF
  301.                 IF choice$ = "YG" THEN
  302.                         set protocol YMODEMG
  303.                 transfer_file$ = ""
  304.                 is_ok = 1
  305.                         EXIT
  306.                 ENDIF
  307.             ENDIF
  308.             rprint cr2$+"Invalid Selection"+cr2$
  309.         WEND
  310.                 IF choice$ = "E" THEN
  311.                 rprint cr$+"Canceled"+cr$
  312.             ELSE
  313.             IF is_ok = 0 THEN
  314.                         RPRINT "File " + transfer_file$ + " was not valid." + cr$
  315.                         RPRINT "File transfer canceled!" + cr$
  316.                     ELSE
  317.  
  318.                         ChangeDirectory(upload_dir$)
  319.                         ONERROR rcverr
  320.                         RPRINT cr2$+"Uploading " + transfer_file$ +cr$
  321.                         RPRINT cr$+"Start Your File Transfer"+cr$
  322.                         RECEIVE transfer_file$
  323.                         sleep 3
  324.                         RPRINT cr$+"File Transfer Successful"+cr$
  325.                         GOTO rcvok
  326.                         rcverr:
  327.                         Rprint "Error Uploading File - "+transfer_file$+cr$
  328.                         rinput "Hit Enter to Continue",temp$
  329.                         rcvok:
  330.                         ChangeDirectory(current_dir$)
  331.                         set error off
  332.             ENDIF
  333.             ENDIF
  334.         ENDIF
  335.         IF command$ = "S" THEN
  336.                 RPRINT cr$+"Shutdown Initiated"
  337.                 continue = 0
  338.                 continue_commands = 0
  339.         ENDIF
  340.         IF command$ = "C"  THEN 
  341.             rprint cr3$+"Chat Mode Started"+cr$   
  342.             rprint "Enter '*' to Terminate"+cr2$   
  343.             chat
  344.             rprint cr2$+"Chat Mode Terminated"+cr3$        
  345.         ENDIF
  346.  
  347.     ' Change Directory
  348.     ENDIF
  349.     if len(command$) = 2 then
  350.         IF command$ = "CD" THEN
  351.         IF access_level > 1 THEN
  352.             RINPUT cr$+"Enter New Directory: ", new_dir$
  353.                     is_ok = ChangeDirectory(new_dir$)
  354.                     if is_ok = 0 then
  355.                         current_dir$ = new_dir$
  356.             ELSE
  357.                 RPRINT cr2$+"Unable to change to directory!"
  358.             ENDIF
  359.             ENDIF
  360.         ENDIF
  361.  
  362.         IF command$ = "FS" Then
  363.                 RPRINT cr2$+"Current File Specification is "+file_spec$+cr$
  364.             RINPUT cr$+"Enter New File Specification: ", file_spec$
  365.             IF LEN(file_spec$) = 0 THEN
  366.             file_spec$ = filespec
  367.                 ENDIF
  368.         ENDIF
  369.     ' Add a New User
  370.         IF command$ = "AU" THEN
  371.             IF access_level > 2 THEN
  372.                     rprint cr4$
  373.                     RPRINT cr$+Header$+cr$
  374.             RPRINT  "Add a new user." + cr$
  375.             RINPUT cr$+"Enter new user's First name: ", new_first$
  376.             RINPUT cr$+"Enter new user's Last name: ", new_last$
  377.             RINPUT cr$+"Enter new user's Password: ", new_password$
  378.                     RINPUT cr$+"Enter new user's Access level: ", new_level$
  379.                     iLevel = val(new_level$)
  380.                     is_ok = AddUser(new_first$, new_last$, new_password$, iLevel)
  381.             IF is_ok > 0 THEN
  382.             RPRINT cr$+"Unable to add user record!" + cr$
  383.             ELSE
  384.             RPRINT cr$+new_first$+" "+new_last$+" added to datafile." + cr$
  385.             ENDIF
  386.         ENDIF
  387.         ENDIF
  388.  
  389.     ' Change an Existing User
  390.         IF command$ = "CU" THEN
  391.         IF access_level > 2 THEN
  392.                     rprint cr4$
  393.                     RPRINT cr$+Header$+cr$
  394.             RPRINT  "Change an existing user." + cr$
  395.             RINPUT cr$+"Enter user's First name: ", new_first$
  396.             RINPUT cr$+"Enter user's Last name: ", new_last$
  397.             RINPUT cr$+"Enter user's new Password or blank to skip: ", new_password$
  398.                     RINPUT cr$+"Enter new Access Level: ", new_level$
  399.                     iLevel = val(new_level$)
  400.                     is_ok = ChangeUser(new_first$, new_last$, new_password$, iLevel)
  401.             IF is_ok > 0 THEN
  402.             RPRINT cr$+"Unable to change user record!" + cr$
  403.             ELSE
  404.             RPRINT cr$+new_first$+" "+new_last$+ " access level changed."+cr$
  405.             ENDIF
  406.         ENDIF
  407.         ENDIF
  408.  
  409.     ' Delete an Existing User
  410.         IF command$ = "DU" THEN
  411.  
  412.         IF access_level > 2 THEN
  413.                     rprint cr4$
  414.                     RPRINT cr$+Header$+cr$
  415.             RPRINT  "Delete an existing user." + cr$
  416.             RINPUT cr$+"Enter user's First name: ", new_first$
  417.             RINPUT cr$+"Enter user's Last name: ", new_last$
  418.             is_ok = DeleteUser(new_first$, new_last$)
  419.             IF is_ok > 0 THEN
  420.             RPRINT cr$+"Unable to delete user record!" + cr$
  421.             ELSE
  422.             RPRINT cr$+new_first$+" "+new_last$+" deleted." + cr$
  423.             ENDIF
  424.         ENDIF
  425.         ENDIF
  426.         ENDIF
  427.     WEND
  428.     force_hangup:
  429.     HANGUP
  430. WEND
  431. Mprint "Script Terminated"
  432. END
  433.